Skip to content

refactor(dashboard): Tokenize structural UI colors - #1516

Closed
sentry-junior[bot] wants to merge 9 commits into
mainfrom
feat/dashboard-color-tokens
Closed

refactor(dashboard): Tokenize structural UI colors#1516
sentry-junior[bot] wants to merge 9 commits into
mainfrom
feat/dashboard-color-tokens

Conversation

@sentry-junior

@sentry-junior sentry-junior Bot commented Aug 13, 2026

Copy link
Copy Markdown
Contributor

Move dashboard structural colors into one root token set and point current surfaces at those tokens.

Superseded by #1632 (merged 2026-08-20). That PR landed the same groundwork with a slimmer role set (~30 tokens) instead of mapping every opacity step. Main already has .dashboard-shell-bg, color-scheme, and the core canvas/surface/text/border/fill tokens.

Closing this draft rather than replaying the dense opacity ladder onto current main (~296 commits ahead, many conflicts). Remaining hard-coded whites/blacks on feature pages can be a follow-up against the slim token set if wanted.

Not included here (and still not on main as a full light theme): a theme toggle, light palette values, or Shiki theme switching.

Requested by David Cramer.

--

View Junior Session [Sentry]

Move dashboard shell colors into root CSS tokens and replace hard-coded
white/black/hex surfaces so a light theme can share the same utilities.

Co-Authored-By: Nicholas Deschenes <nicholas.deschenes@sentry.io>
@vercel

vercel Bot commented Aug 13, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
junior-docs Ready Ready Preview Aug 13, 2026 6:01pm

Request Review

@sentry-junior
sentry-junior Bot requested a review from nsdeschenes August 13, 2026 10:02
…tokens

# Conflicts:
#	packages/junior-dashboard/src/client/App.tsx
#	packages/junior-dashboard/src/client/components/layout/DashboardHeader.tsx
#	packages/junior-dashboard/src/client/components/layout/SecondaryNavigation.tsx
#	packages/junior-dashboard/src/client/conversations/ConversationHeader.tsx
#	packages/junior-dashboard/src/client/conversations/ConversationPage.tsx
#	packages/junior-dashboard/src/client/conversations/ConversationSidebar.tsx
#	packages/junior-dashboard/src/client/conversations/ConversationTranscript.tsx
#	packages/junior-dashboard/src/client/conversations/PendingMailboxStack.tsx
#	packages/junior-dashboard/src/client/conversations/TranscriptActivityGroup.tsx
#	packages/junior-dashboard/src/client/conversations/TranscriptContextEventView.tsx
#	packages/junior-dashboard/src/client/conversations/TranscriptHeader.tsx
#	packages/junior-dashboard/src/client/conversations/TranscriptStructuredEventView.tsx
#	packages/junior-dashboard/src/client/conversations/TranscriptToolView.tsx
Comment thread packages/junior-dashboard/src/tailwind.css
@nsdeschenes nsdeschenes changed the title refactor(dashboard): tokenize structural UI colors refactor(dashboard): Tokenize structural UI colors Aug 13, 2026

@sentry-junior sentry-junior Bot left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good to me. I checked the token values against the replaced dark-theme literals across the changed dashboard files, and the values and opacity variants match. The generated Tailwind CSS includes the new color, border, fill, chart, focus, and shadow utilities, with the remaining direct colors limited to status/data accents.

…tokens

# Conflicts:
#	packages/junior-dashboard/src/client/conversations/ConversationHeader.tsx
Comment thread packages/junior-dashboard/src/client/App.tsx Outdated
dcramer added a commit that referenced this pull request Aug 20, 2026
Finish the leftover cutover from #1618 so page modules stop owning
one-off control styles.

**What changed**
- Add a `segment` variant to `ToggleButton` and use it in
`TimeRangeSelector`.
- Add a `danger` tone to `Button` for remove and revoke actions.
- Add a compact `Field` size for repository labels.
- Add a raised `Card` variant for settings and token panels.
- Move `SettingsPage`, `WorkspaceEditor`, and `PersonalTokensPage` to
these shared surfaces.
- Add the new states to the foundations gallery.

**Checks**
- `pnpm --filter @sentry/junior-dashboard typecheck`
- `pnpm --filter @sentry/junior-dashboard lint`

Color-token work remains in #1516 and should be revived separately.

<!-- junior-request-attribution:start -->
Requested by **David Cramer**.
<!-- junior-request-attribution:end -->

<!-- junior-session-footer:start -->
<!-- junior-conversation-id:slack%3AC0B595QDZLL%3A1787188926.853389 -->

--

[View Junior
Session](https://junior-prod.sentry.dev/conversations/slack%3AC0B595QDZLL%3A1787188926.853389)
[[Sentry]](https://sentry.sentry.io/explore/conversations/slack%3AC0B595QDZLL%3A1787188926.853389/?project=4510944073809921)

<!-- junior-session-footer:end -->

---------

Co-authored-by: sentry-junior[bot] <264270552+sentry-junior[bot]@users.noreply.github.com>
Co-authored-by: David Cramer <david@sentry.io>
dcramer added a commit that referenced this pull request Aug 20, 2026
Add a small structural color role set and point kit plus shell surfaces
at it.

This supersedes the approach in #1516. That PR mapped nearly every
opacity step. This one keeps about 30 roles so authors pick by meaning,
not by micro-opacity.

**Tokens**
- Canvas: `bg`, `bg-elevated`, `ink`
- Surface: `panel`, `raised`, `hover`, `control`
- Text: `text`, `muted`, `subtle`, `faint`, `solid`, `inverse`
- Border: `subtle`, default, `strong`, `emphasis`, `interactive`,
`heavy`
- Fill / overlay: `faint`, `soft`, `hover`, `strong`, `overlay-soft`,
`overlay`
- Focus brand: `focus` (`#beaaff`)
- Shell helpers: grid line, scrollbar, `.dashboard-shell-bg`,
`color-scheme` hook

**Consumers in this PR**
- Kit: `Button`, `TextInput`, `SearchInput`, `Card`, `StatusChip`,
`Drawer`, `Tooltip`, `ProfileMenu`, directory table/sort, loading/header
chrome
- Shell: SPA background class, SSR access/loading/error HTML, client
error panel
- Foundations gallery: color swatch fixture

**Not included**
- Full page-by-page rewrite of remaining `white/*` / chart hex
- Light theme values or theme toggle
- Status accent retokenization (rose/cyan/emerald stay palette
utilities)

**Checks**
- `pnpm --filter @sentry/junior-dashboard typecheck`
- `pnpm --filter @sentry/junior-dashboard lint`

After this lands, #1516 can close as superseded.

<!-- junior-request-attribution:start -->
Requested by **David Cramer**.
<!-- junior-request-attribution:end -->

<!-- junior-session-footer:start -->
<!-- junior-conversation-id:slack%3AC0B595QDZLL%3A1787188926.853389 -->

--

[View Junior Session in
Sentry](https://sentry.sentry.io/explore/conversations/slack%3AC0B595QDZLL%3A1787188926.853389/?project=4510944073809921)

<!-- junior-session-footer:end -->

Co-authored-by: sentry-junior[bot] <264270552+sentry-junior[bot]@users.noreply.github.com>
Co-authored-by: David Cramer <david@sentry.io>
@sentry-junior

sentry-junior Bot commented Sep 1, 2026

Copy link
Copy Markdown
Contributor Author

Closing as superseded by #1632 (refactor(dashboard): add slim structural color tokens), which already landed the structural token groundwork on main with a smaller role set.

This branch is ~296 commits behind and conflict-heavy. Replaying the dense opacity-ladder approach would fight the design #1632 intentionally chose (roles over micro-opacity steps).

If we want to finish the migration, the useful follow-up is mapping remaining hard-coded white/black/#… surfaces on feature pages onto the existing slim tokens — not resurrecting this PR.

@sentry-junior sentry-junior Bot closed this Sep 1, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant